#include <iostream>
#include <stdlib.h>
using namespace std;

class Stack
{
public:
    Stack(int capacity = 4)
    {
        _a = (int*)malloc(sizeof(int)* capacity);
        if(_a == nullptr)
        {
            perror("malloc fail");
            exit(-1);
        }
        _top = 0;
        _capacity = capacity;
    }

    void push(int x)
    {
        //.....
    }

    ~Stack()
    {
        cout << "Stack的析构函数" << endl;
        free(_a);
        _top = 0;
        _capacity = 0;
    }

private:
    int* _a;
    int _top;
    int _capacity;
};

class A
{
public:
    Stack s;
    int a = 10;
};

int main()
{
    A a;
    return 0;
}

// class Date
// {
// public:
//     Date(int year = 1,int month = 1, int day = 1)
//     {
//         _year = year;
//         _month = month;
//         _day = day;
//     }
//     void print()
//     {
//         cout << _year << "-";
//         cout << _month << "-";
//         cout << _day << endl;
//     }
//     ~Date()
//     {
//         _year = 0;
//         _month = 0;
//         _day = 0;
//     }
// private:
//     int _year = 1;
//     int _month = 1;
//     int _day = 1;
// };

// int main()
// {
//     Date d;
//     d.print();
//     return 0;
// }

